The present invention relates to the field of asynchronous serial communication, and more particularly to a technique for determining from a received plurality of calibration bits an index for an optimal sampling for each future received bit.
Asynchronous serial data communication is a common method for sending data between electronic devices. Examples of devices employing asynchronous serial data communications include computers, Global Positioning System (“GPS”) navigation units, and telecommunications radio receivers. Asynchronous serial data communications systems employ two or more “symbols”, or recognizable states of the data line, and convey one or more bits of binary data with each symbol.
In a common asynchronous serial data format used to transmit binary data, two data symbol values are used, corresponding to a data line held at one of two levels (“high” and “low”). During idle periods, the data line is held at a specific level, which may be either high or low according to the convention of the system. To indicate the start of a data sequence, a “start bit” is transmitted with the opposite level. A fixed number of data bits follow, usually eight bits from least significant bit (“LSB”, bit 0) to most significant bit (“MSB”, bit 7), with the two data levels (high and low) mapped to the two bit values (one and zero) according to the convention of the system. Following bit 7, a final “stop bit” is sent with a level equal to the idle level. The level for each bit, including the start and stop bits, is held on the data line for an identical time interval “t”.
Ideally, the device receiving the asynchronous serial data should sample the data line near times 1.5 t, 2.5 t, 3.5 t . . . 8.5 t after the leading edge of the start bit. In order to accomplish this, the receiver must know t with a high degree of accuracy. Prior art devices therefore use stable precision timing references, such as crystal oscillators to ensure the required accuracy. A shift of up to 5% in the timing reference is typically the maximum which can be tolerated by prior art devices.
Published U.S. Patent Application S/N 2002/0172315 A1 to Sullivan, published Nov. 21, 2002 entitled “Data Rate Calibration for Asynchronous Serial Communications” discloses a method and apparatus for determining the appropriate timing interval for each bit or data symbol in serial data communications. A pre-determined bit sequence is first sent from a transmitting device to a receiver, the pre-determined bit sequence comprising a marker transition, and the receiver calculates t based on a calibration time interval between the start bit leading edge and the marker transition. Subsequent transmission receipts from the transmitter, as well as transmissions from the receiver are accomplished utilizing the calculated t. Such a technique requires a relatively fast running timer which can accurately calculate the time difference. A single t is used to calculate the sampling time for all received bits, and thus any error or approximation used in calculating t is multiplied across the number of bits in the data stream.
What is needed, and not supplied by the prior art, is a method an apparatus for asynchronous transmission which does not require a precision timer for the transmitter, and preferably one for which an accurate sample is determined for each bit at the receiver, the sample not being dependent on a single calculated timing value.